﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Models;
using TumbaloSoft.Helpers.QueryObjects;


namespace TumbaloSoft.Helpers
{
    public class HelperAdministrador
    {
        public static int insert(TumbaloSoft.Models.AdministradorEdificios administrador)
        {
            Mapper.Instance().Insert("AdministradorPersonaInsert", administrador);
            Mapper.Instance().Insert("AdministradorEmpleadoTumbaloInsert", administrador);
            
            return 0;
        }
	   public static void update(AdministradorEdificios administrador)
        {
            Mapper.Instance().Update("AdministradorPersonaUpdate", administrador);
            Mapper.Instance().Update("AdministradorEmpleadoTumbaloUpdate", administrador);
        }
       public static void delete(AdministradorEdificios administrador)
        {

		   Mapper.Instance().Update("AdministradorEmpleadoTumbaloDelete", administrador);
        }
        

        static public int SiguienteCodigo()
        {
            return (int)Mapper.Instance().QueryForObject("AdministradorSiguienteCodigo", null);
        }

        public static Boolean ExisteAdministrador(string documento)
        {
            IList l = Mapper.Instance().QueryForList("ExisteAdministrador", documento);
            int cant = l.Count;
            if (cant == 0) return false;
            else return true;
        }

        public static IList buscar(BusquedaAdministrador administradorBuscar)
        {

            return Mapper.Instance().QueryForList("AdministradorBuscar", administradorBuscar);
        }

        public static AdministradorEdificios selectById(int id)
        {
            IList administradores = Mapper.Instance().QueryForList("AdministradorEmpleadoTumbaloSelectById",id);
            if (administradores.Count == 0) return null;
		  AdministradorEdificios administrador = (AdministradorEdificios)(administradores[0]);
            return administrador;
        }
        public static AdministradorEdificios selectByIdPersona(int id)
        {
            IList administradores = Mapper.Instance().QueryForList("AdministradorEmpleadoTumbaloSelectByIdPersona", id);
            if (administradores.Count == 0) return null;
            AdministradorEdificios administrador = (AdministradorEdificios)(administradores[0]);
            return administrador;
        }

        public static int IdPersona(int id)
        {
            int codigoPersona = Convert.ToInt32(Mapper.Instance().QueryForObject("SeleccionarIdPersonaAdministrador",id));
            return codigoPersona;
        }


        public static int selectCountActivos()
        {
            return (int)Mapper.Instance().QueryForObject("AdministradorSelectCountActivos", null);
        }

        static public IList selectAll()
        {
            return Mapper.Instance().QueryForList("AdministradorSelectAll", null);
        }
	   public static int updateEdificioAdministrado(AdministradorEdificios admin)
	   {
           
           int? idEdificio = (int?)Mapper.Instance().QueryForObject("EdificioAdministradoSelect", admin.prIdAdministrador);
           if(idEdificio != admin.prIdEdificio)
           {
		        Mapper.Instance().Update("EdificioAdministradoUpdate", admin);
		   }
           return 0;
	   }
	   public static int EdificioAdministradoSelect(int idAmin)
	   {

		   if (Mapper.Instance().QueryForObject("BuscaEdificioAdministrado", idAmin) == null)
			   return 0;
		   else
			   return (int)Mapper.Instance().QueryForObject("BuscaEdificioAdministrado", idAmin);
	   }

       public static int buscaAdministradorEdificio(int idEdificio)
       {
           if (Mapper.Instance().QueryForObject("IdAdminstradordeEdificio", idEdificio) == null)
               return 0;
           else
               return (int)Mapper.Instance().QueryForObject("IdAdminstradordeEdificio", idEdificio);
       }
	  public static int buscaEdificioAdministrado(int idAdministrador)
	  {
		  if (Mapper.Instance().QueryForObject("BuscaEdificioAdministrado", idAdministrador) == null)
			  return 0;
		  else
			  return (int)Mapper.Instance().QueryForObject("BuscaEdificioAdministrado", idAdministrador);
	  }

    }
}